package com.bjpowernode.springboot.config;

import com.bjpowernode.springboot.interceptor.UserInterceptor;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.w3c.dom.ls.LSOutput;

/*
<!--声明拦截器：拦截器可以有0或者多个-->
    <mvc:interceptors>
        <!--声明第一个拦截器-->
        <mvc:interceptor>
            <!--指定拦截器的请求URL地址
            path:就是uri地址可以使用通配符**
                    **：表示任意字符、文件或者多级目录和目录中的文件
                    /代表根，
                    /**表示所有资源都会被拦截
                    /user/**表示user目录下所有的资源
            -->
            <mvc:mapping path="/**"/>
            <!--声明拦截对象-->
            <bean class="com.bjpowernode.handler.MyInterceptor"/>
        </mvc:interceptor>
    </mvc:interceptors>
 */

@Configuration//定义此类为配置类（即相当于之前的xml配置文件）
public class InterceptorConfig implements WebMvcConfigurer {

    /**
     * path:就是uri地址可以使用通配符**
     *                     **：表示任意字符、文件或者多级目录和目录中的文件
     *                     /代表根，
     *                     /**表示所有资源都会被拦截
     *                     /user/**表示user目录下所有的资源
     */
    String[] addPathPatterns ={
        "/user/**"
    };
    //要排除的路径，说明不需要用户登录也可以访问
    String[] excludePathPatterns ={
        "/user/out","/user/error","/user/login"
    };

   //<mvc:interceptors>
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        //<mvc:interceptor>
        //<bean class=
        // <mvc:mapping path=
        registry.addInterceptor(new UserInterceptor())
                .addPathPatterns(addPathPatterns)
                .excludePathPatterns(excludePathPatterns);
    }
}
